// ------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
// Licensed under the MIT License (MIT). See License.txt in the repo root for license information.
// ------------------------------------------------------------



/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 8.00.0613 */
/* @@MIDL_FILE_HEADING(  ) */



/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 500
#endif

/* verify that the <rpcsal.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCSAL_H_VERSION__
#define __REQUIRED_RPCSAL_H_VERSION__ 100
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif /* __RPCNDR_H_VERSION__ */


#ifndef __fabrictypes__h__
#define __fabrictypes__h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

/* header files for imported files */
#include "wtypes.h"
#include "FabricTypes.h"

#ifdef __cplusplus
extern "C"{
#endif 


/* interface __MIDL_itf_fabrictypes__0000_0000 */
/* [local] */ 

#if ( _MSC_VER >= 1020 )
#pragma once
#endif


extern RPC_IF_HANDLE __MIDL_itf_fabrictypes__0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_fabrictypes__0000_0000_v0_0_s_ifspec;


#ifndef __FabricType_Lib_LIBRARY_DEFINED__
#define __FabricType_Lib_LIBRARY_DEFINED__

/* library FabricType_Lib */
/* [version][helpstring][uuid] */ 


#pragma pack(push, 8)
typedef GUID LOG_CONTAINER_ID;

typedef LONGLONG FABRIC_STATE_PROVIDER_ID;

typedef GUID FABRIC_BACKUP_OPERATION_ID;

typedef GUID FABRIC_RESTORE_OPERATION_ID;

#define	FABRIC_SECURITY_ROLE_NAME_AUTHENTICATED_USERS	( L"Authenticated Users" )

#define	FABRIC_SECURITY_ROLE_NAME_ADMINISTRATOR	( L"Administrator" )

#define	FABRIC_INVALID_STATE_PROVIDER_ID	( -1 )

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("dcb33c4a-134b-44f6-aaa2-f6358b955670") 
enum FABRIC_NODE_TASK_TYPE
    {
        FABRIC_NODE_TASK_TYPE_INVALID	= 0,
        FABRIC_NODE_TASK_TYPE_RESTART	= 0x1,
        FABRIC_NODE_TASK_TYPE_RELOCATE	= 0x2,
        FABRIC_NODE_TASK_TYPE_REMOVE	= 0x3
    } 	FABRIC_NODE_TASK_TYPE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("23a82620-e134-40da-9872-1238762b72f1") 
enum FABRIC_INFRASTRUCTURE_TASK_STATE
    {
        FABRIC_INFRASTRUCTURE_TASK_STATE_INVALID	= 0,
        FABRIC_INFRASTRUCTURE_TASK_STATE_PRE_PROCESSING	= 0x1,
        FABRIC_INFRASTRUCTURE_TASK_STATE_PRE_ACK_PENDING	= 0x2,
        FABRIC_INFRASTRUCTURE_TASK_STATE_PRE_ACKED	= 0x3,
        FABRIC_INFRASTRUCTURE_TASK_STATE_POST_PROCESSING	= 0x4,
        FABRIC_INFRASTRUCTURE_TASK_STATE_POST_ACK_PENDING	= 0x5,
        FABRIC_INFRASTRUCTURE_TASK_STATE_POST_ACKED	= 0x6
    } 	FABRIC_INFRASTRUCTURE_TASK_STATE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("4fd80465-7e08-49e9-a7eb-243f8b1f769d") 
enum FABRIC_OPERATION_TYPE_EX
    {
        FABRIC_OPERATION_TYPE_EX_INVALID	= 0,
        FABRIC_OPERATION_TYPE_EX_COPY	= 0x1,
        FABRIC_OPERATION_TYPE_EX_SINGLE_OPERATION	= 0x2,
        FABRIC_OPERATION_TYPE_EX_CREATE_ATOMIC_GROUP	= 0x4,
        FABRIC_OPERATION_TYPE_EX_REDO	= 0x8,
        FABRIC_OPERATION_TYPE_EX_UNDO	= 0x10,
        FABRIC_OPERATION_TYPE_EX_COMMIT_ATOMIC_GROUP	= 0x20,
        FABRIC_OPERATION_TYPE_EX_ROLLBACK_ATOMIC_GROUP	= 0x40,
        FABRIC_OPERATION_TYPE_EX_ABORT_ATOMIC_GROUP	= 0x80,
        FABRIC_OPERATION_TYPE_EX_REDO_PASS_COMPLETE	= 0x100,
        FABRIC_OPERATION_TYPE_EX_UNDO_PASS_COMPLETE	= 0x200,
        FABRIC_OPERATION_TYPE_EX_END_OF_STREAM	= 0x400
    } 	FABRIC_OPERATION_TYPE_EX;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("CE5C2CEB-E725-4C49-B3A9-F86E572EEE04") 
enum FABRIC_REPLICATOR_LOG_SETTINGS_FLAGS
    {
        FABRIC_REPLICATOR_LOG_SETTINGS_NONE	= 0,
        FABRIC_REPLICATOR_LOG_CONTAINER_PATH_AND_ID	= 0x1,
        FABRIC_REPLICATOR_LOG_MAX_REPLICATOR_CHECKPOINT_SIZE	= 0x2
    } 	FABRIC_REPLICATOR_LOG_SETTINGS_FLAGS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("3551a305-c917-4b33-b53d-f7d6f864574e") 
enum FABRIC_TRANSACTIONAL_REPLICATOR_SETTINGS_FLAGS
    {
        FABRIC_TRANSACTIONAL_REPLICATOR_SETTINGS_NONE	= 0,
        FABRIC_TRANSACTIONAL_REPLICATOR_SLOW_API_MONITORING_DURATION_SECONDS	= 0x1,
        FABRIC_TRANSACTIONAL_REPLICATOR_CHECKPOINT_THRESHOLD_MB	= 0x2,
        FABRIC_TRANSACTIONAL_REPLICATOR_MAX_ACCUMULATED_BACKUP_LOG_SIZE_MB	= 0x4,
        FABRIC_TRANSACTIONAL_REPLICATOR_MIN_LOG_SIZE_MB	= 0x8,
        FABRIC_TRANSACTIONAL_REPLICATOR_TRUNCATION_THRESHOLD_FACTOR	= 0x10,
        FABRIC_TRANSACTIONAL_REPLICATOR_THROTTLING_THRESHOLD_FACTOR	= 0x20,
        FABRIC_TRANSACTIONAL_REPLICATOR_MAX_RECORD_SIZE_KB	= 0x40,
        FABRIC_TRANSACTIONAL_REPLICATOR_MAX_STREAM_SIZE_MB	= 0x80,
        FABRIC_TRANSACTIONAL_REPLICATOR_OPTIMIZE_FOR_LOCAL_SSD	= 0x100,
        FABRIC_TRANSACTIONAL_REPLICATOR_MAX_WRITE_QUEUE_DEPTH_KB	= 0x200,
        FABRIC_TRANSACTIONAL_REPLICATOR_MAX_METADATA_SIZE_KB	= 0x400,
        FABRIC_TRANSACTIONAL_REPLICATOR_ENABLE_SECONDARY_COMMIT_APPLY_ACKNOWLEDGEMENT	= 0x800,
        FABRIC_TRANSACTIONAL_REPLICATOR_OPTIMIZE_LOG_FOR_LOWER_DISK_USAGE	= 0x1000,
        FABRIC_TRANSACTIONAL_REPLICATOR_SLOW_LOG_IO_DURATION_SECONDS	= 0x2000,
        FABRIC_TRANSACTIONAL_REPLICATOR_SLOW_LOG_IO_COUNT_THRESHOLD	= 0x4000,
        FABRIC_TRANSACTIONAL_REPLICATOR_SLOW_LOG_IO_TIME_THRESHOLD_SECONDS	= 0x8000,
        FABRIC_TRANSACTIONAL_REPLICATOR_SLOW_LOG_IO_HEALTH_REPORT_TTL_SECONDS	= 0x10000,
        FABRIC_TRANSACTIONAL_REPLICATOR_SERIALIZATION_VERSION	= 0x20000
    } 	FABRIC_TRANSACTIONAL_REPLICATOR_SETTINGS_FLAGS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("6e04d3b8-9a04-430e-ab35-58d480813cda") 
enum FABRIC_QUERY_RESULT_KIND
    {
        FABRIC_QUERY_RESULT_KIND_INVALID	= 0,
        FABRIC_QUERY_RESULT_KIND_ITEM	= 0x1,
        FABRIC_QUERY_RESULT_KIND_LIST	= 0x2
    } 	FABRIC_QUERY_RESULT_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("ebfc0402-b04d-44ab-826c-5abaced44a08") 
enum FABRIC_QUERY_RESULT_ITEM_KIND
    {
        FABRIC_QUERY_RESULT_ITEM_KIND_INVALID	= 0,
        FABRIC_QUERY_RESULT_ITEM_KIND_NODE	= 0x1,
        FABRIC_QUERY_RESULT_ITEM_KIND_SERVICE	= 0x2,
        FABRIC_QUERY_RESULT_ITEM_KIND_APPLICATION_TYPE	= 0x3,
        FABRIC_QUERY_RESULT_ITEM_KIND_APPLICATION	= 0x4,
        FABRIC_QUERY_RESULT_ITEM_KIND_SERVICE_PARTITION	= 0x5,
        FABRIC_QUERY_RESULT_ITEM_KIND_SERVICE_REPLICA	= 0x6,
        FABRIC_QUERY_RESULT_ITEM_KIND_APPLICATION_SERVICE_TYPE	= 0x7,
        FABRIC_QUERY_RESULT_ITEM_KIND_QUERY_METADATA	= 0x8,
        FABRIC_QUERY_RESULT_ITEM_KIND_SERVICE_TYPE	= 0x9,
        FABRIC_QUERY_RESULT_ITEM_KIND_DEPLOYED_APPLICATION	= 0xa,
        FABRIC_QUERY_RESULT_ITEM_KIND_DEPLOYED_SERVICE_MANIFEST	= 0xb,
        FABRIC_QUERY_RESULT_ITEM_KIND_DEPLOYED_SERVICE_REPLICA	= 0xc,
        FABRIC_QUERY_RESULT_ITEM_KIND_DEPLOYED_SERVICE_TYPE	= 0xd,
        FABRIC_QUERY_RESULT_ITEM_KIND_DEPLOYED_CODE_PACKAGE	= 0xe,
        FABRIC_QUERY_RESULT_ITEM_KIND_APPLICATION_HEALTH	= 0xf,
        FABRIC_QUERY_RESULT_ITEM_KIND_NODE_HEALTH	= 0x10,
        FABRIC_QUERY_RESULT_ITEM_KIND_REPLICA_HEALTH	= 0x11,
        FABRIC_QUERY_RESULT_ITEM_KIND_PARTITION_HEALTH	= 0x12,
        FABRIC_QUERY_RESULT_ITEM_KIND_DEPLOYED_SERVICE_PACKAGE_HEALTH	= 0x13,
        FABRIC_QUERY_RESULT_ITEM_KIND_DEPLOYED_APPLICATION_HEALTH	= 0x14,
        FABRIC_QUERY_RESULT_ITEM_KIND_SERVICE_HEALTH	= 0x15,
        FABRIC_QUERY_RESULT_ITEM_KIND_CLUSTER_HEALTH	= 0x1d,
        FABRIC_QUERY_RESULT_ITEM_KIND_DEPLOYED_SERVICE_REPLICA_DETAIL	= 0x1e,
        FABRIC_QUERY_RESULT_ITEM_KIND_PROVISIONED_FABRIC_CODE_VERSION	= 0x1f,
        FABRIC_QUERY_RESULT_ITEM_KIND_PROVISIONED_FABRIC_CONFIG_VERSION	= 0x20,
        FABRIC_QUERY_RESULT_ITEM_KIND_CLUSTER_LOAD_INFORMATION	= 0x21,
        FABRIC_QUERY_RESULT_ITEM_KIND_PARTITION_LOAD_INFORMATION	= 0x22,
        FABRIC_QUERY_RESULT_ITEM_KIND_SERVICE_GROUP_MEMBER	= 0x23,
        FABRIC_QUERY_RESULT_ITEM_KIND_SERVICE_GROUP_MEMBER_TYPE	= 0x24,
        FABRIC_QUERY_RESULT_ITEM_KIND_CLUSTER_HEALTH_CHUNK	= 0x25,
        FABRIC_QUERY_RESULT_ITEM_KIND_TEST_COMMAND_LIST	= 0x26,
        FABRIC_QUERY_RESULT_ITEM_KIND_SERVICE_NAME	= 0x27,
        FABRIC_QUERY_RESULT_ITEM_KIND_APPLICATION_NAME	= 0x28,
        FABRIC_QUERY_RESULT_ITEM_KIND_COMPOSE_DEPLOYMENT_STATUS	= 0x29,
        FABRIC_QUERY_RESULT_ITEM_KIND_COMPOSE_DEPLOYMENT_UPGRADE_PROGRESS	= 0x30
    } 	FABRIC_QUERY_RESULT_ITEM_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("6ea7bfcc-16fc-4fbf-9b66-046cb0a02656") 
enum FABRIC_IMAGE_STORE_COPY_FLAG
    {
        FABRIC_IMAGE_STORE_COPY_FLAG_INVALID	= 0,
        FABRIC_IMAGE_STORE_COPY_FLAG_IF_DIFFERENT	= 0x1,
        FABRIC_IMAGE_STORE_COPY_FLAG_ATOMIC	= 0x2,
        FABRIC_IMAGE_STORE_COPY_FLAG_ATOMIC_SKIP_IF_EXISTS	= 0x3
    } 	FABRIC_IMAGE_STORE_COPY_FLAG;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("92574926-8AEB-4DBB-AA17-35F244F98633") 
enum FABRIC_FILE_MODE
    {
        FABRIC_FILE_MODE_INVALID	= 0,
        FABRIC_FILE_MODE_CREATE_NEW	= 0x1,
        FABRIC_FILE_MODE_CREATE_ALWAYS	= 0x2,
        FABRIC_FILE_MODE_OPEN_EXISTING	= 0x3,
        FABRIC_FILE_MODE_OPEN_ALWAYS	= 0x4,
        FABRIC_FILE_MODE_TRUNCATE_EXISTING	= 0x5
    } 	FABRIC_FILE_MODE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("A3201B51-74EF-4D3B-AD2D-A68ACE65A2DD") 
enum FABRIC_FILE_ACCESS
    {
        FABRIC_FILE_ACCESS_INVALID	= 0L,
        FABRIC_FILE_ACCESS_READ	= 0x80000000L,
        FABRIC_FILE_ACCESS_WRITE	= 0x40000000L,
        FABRIC_FILE_ACCESS_READ_WRITE	= ( FABRIC_FILE_ACCESS_READ | FABRIC_FILE_ACCESS_WRITE ) 
    } 	FABRIC_FILE_ACCESS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("EC05A712-A18A-4A47-B3AF-B6FFDBBAE965") 
enum FABRIC_FILE_SHARE
    {
        FABRIC_FILE_SHARE_INVALID	= 0,
        FABRIC_FILE_SHARE_READ	= 0x1,
        FABRIC_FILE_SHARE_WRITE	= 0x2,
        FABRIC_FILE_SHARE_DELETE	= 0x4,
        FABRIC_FILE_SHARE_READ_WRITE	= ( FABRIC_FILE_SHARE_READ | FABRIC_FILE_SHARE_WRITE ) 
    } 	FABRIC_FILE_SHARE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("861BFD99-156F-4947-8652-DC949D8F60A0") 
enum FABRIC_FILE_ATTRIBUTES
    {
        FABRIC_FILE_ATTRIBUTES_NONE	= 0,
        FABRIC_FILE_ATTRIBUTES_READONLY	= 0x1,
        FABRIC_FILE_ATTRIBUTES_HIDDEN	= 0x2,
        FABRIC_FILE_ATTRIBUTES_SYSTEM	= 0x4,
        FABRIC_FILE_ATTRIBUTES_DIRECTORY	= 0x10,
        FABRIC_FILE_ATTRIBUTES_ARCHIVE	= 0x20,
        FABRIC_FILE_ATTRIBUTES_DEVICE	= 0x40,
        FABRIC_FILE_ATTRIBUTES_NORMAL	= 0x80,
        FABRIC_FILE_ATTRIBUTES_TEMPORARY	= 0x100,
        FABRIC_FILE_ATTRIBUTES_SPARSE_FILE	= 0x200,
        FABRIC_FILE_ATTRIBUTES_REPARSE_POINT	= 0x400,
        FABRIC_FILE_ATTRIBUTES_COMPRESSED	= 0x800,
        FABRIC_FILE_ATTRIBUTES_OFFLINE	= 0x1000,
        FABRIC_FILE_ATTRIBUTES_NOT_CONTENT_INDEXED	= 0x2000,
        FABRIC_FILE_ATTRIBUTES_ENCRYPTED	= 0x4000,
        FABRIC_FILE_ATTRIBUTES_WRITE_THROUGH	= 0x80000000,
        FABRIC_FILE_ATTRIBUTES_OVERLAPPED	= 0x40000000,
        FABRIC_FILE_ATTRIBUTES_NO_BUFFERING	= 0x20000000,
        FABRIC_FILE_ATTRIBUTES_RANDOM_ACCESS	= 0x10000000,
        FABRIC_FILE_ATTRIBUTES_SEQUENTIAL_SCAN	= 0x8000000,
        FABRIC_FILE_ATTRIBUTES_DELETE_ON_CLOSE	= 0x4000000,
        FABRIC_FILE_ATTRIBUTES_BACKUP_SEMANTICS	= 0x2000000,
        FABRIC_FILE_ATTRIBUTES_POSIX_SEMANTICS	= 0x1000000,
        FABRIC_FILE_ATTRIBUTES_SESSION_AWARE	= 0x800000,
        FABRIC_FILE_ATTRIBUTES_OPEN_REPARSE_POINT	= 0x200000,
        FABRIC_FILE_ATTRIBUTES_OPEN_NO_RECALL	= 0x100000,
        FABRIC_FILE_ATTRIBUTES_FIRST_PIPE_INSTANCE	= 0x80000
    } 	FABRIC_FILE_ATTRIBUTES;

typedef struct TRANSACTIONAL_REPLICATOR_SETTINGS
    {
    DWORD64 Flags;
    DWORD CheckpointThresholdInMB;
    DWORD MaxAccumulatedBackupLogSizeInMB;
    DWORD SlowApiMonitoringDurationSeconds;
    DWORD MinLogSizeInMB;
    DWORD TruncationThresholdFactor;
    DWORD ThrottlingThresholdFactor;
    DWORD MaxRecordSizeInKB;
    DWORD MaxStreamSizeInMB;
    BOOLEAN OptimizeForLocalSSD;
    DWORD MaxWriteQueueDepthInKB;
    DWORD MaxMetadataSizeInKB;
    BOOLEAN EnableSecondaryCommitApplyAcknowledgement;
    BOOLEAN OptimizeLogForLowerDiskUsage;
    DWORD SlowLogIODurationSeconds;
    DWORD SlowLogIOCountThreshold;
    DWORD SlowLogIOTimeThresholdSeconds;
    DWORD SlowLogIOHealthReportTTLSeconds;
    DWORD SerializationVersion;
    void *Reserved;
    } 	TRANSACTIONAL_REPLICATOR_SETTINGS;

typedef struct KTLLOGGER_SHARED_LOG_SETTINGS
    {
    LPCWSTR ContainerPath;
    LPCWSTR ContainerId;
    LONGLONG LogSize;
    ULONG MaximumNumberStreams;
    ULONG MaximumRecordSize;
    ULONG CreateFlags;
    void *Reserved;
    } 	KTLLOGGER_SHARED_LOG_SETTINGS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("045b08cd-98b3-4432-b533-575d19848744") 
enum FABRIC_SECURITY_PRINCIPAL_IDENTIFIER_KIND
    {
        FABRIC_SECURITY_PRINCIPAL_IDENTIFIER_KIND_INVALID	= FABRIC_SECURITY_CREDENTIAL_KIND_NONE,
        FABRIC_SECURITY_PRINCIPAL_IDENTIFIER_KIND_X509	= FABRIC_SECURITY_CREDENTIAL_KIND_X509,
        FABRIC_SECURITY_PRINCIPAL_IDENTIFIER_KIND_WINDOWS	= FABRIC_SECURITY_CREDENTIAL_KIND_WINDOWS,
        FABRIC_SECURITY_PRINCIPAL_IDENTIFIER_KIND_CLAIM	= FABRIC_SECURITY_CREDENTIAL_KIND_CLAIMS,
        FABRIC_SECURITY_PRINCIPAL_IDENTIFIER_KIND_ROLE	= 0x8000
    } 	FABRIC_SECURITY_PRINCIPAL_IDENTIFIER_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("0df30b72-d2e6-4975-a0c1-4562f41f8929") 
enum FABRIC_SECURITY_RESOURCE_IDENTIFIER_KIND
    {
        FABRIC_SECURITY_RESOURCE_IDENTIFIER_KIND_INVALID	= 0,
        FABRIC_SECURITY_RESOURCE_IDENTIFIER_KIND_PATH_IN_FABRIC_IMAGESTORE	= 0x1,
        FABRIC_SECURITY_RESOURCE_IDENTIFIER_KIND_APPLICATION_TYPE	= 0x2,
        FABRIC_SECURITY_RESOURCE_IDENTIFIER_KIND_APPLICATION	= 0x3,
        FABRIC_SECURITY_RESOURCE_IDENTIFIER_KIND_SERVICE	= 0x4,
        FABRIC_SECURITY_RESOURCE_IDENTIFIER_KIND_NAME	= 0x5
    } 	FABRIC_SECURITY_RESOURCE_IDENTIFIER_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("E0A57F77-1CB4-4510-A61C-7CD56230A871") 
enum FABRIC_ACCESS_MASK
    {
        FABRIC_ACCESS_MASK_NONE	= 0,
        FABRIC_ACCESS_MASK_CREATE	= 0x1,
        FABRIC_ACCESS_MASK_WRITE	= 0x2,
        FABRIC_ACCESS_MASK_READ	= 0x4,
        FABRIC_STANDARD_RIGHTS_DELETE	= 0x10000,
        FABRIC_STANDARD_RIGHTS_READ_CONTROL	= 0x20000,
        FABRIC_STANDARD_RIGHTS_WRITE_DAC	= 0x40000,
        FABRIC_GENERIC_READ	= ( FABRIC_ACCESS_MASK_READ | FABRIC_STANDARD_RIGHTS_READ_CONTROL ) ,
        FABRIC_GENERIC_WRITE	= ( FABRIC_ACCESS_MASK_CREATE | FABRIC_ACCESS_MASK_WRITE ) ,
        FABRIC_GENERIC_ALL	= ( ( ( FABRIC_GENERIC_READ | FABRIC_GENERIC_WRITE )  | FABRIC_STANDARD_RIGHTS_WRITE_DAC )  | FABRIC_STANDARD_RIGHTS_DELETE ) 
    } 	FABRIC_ACCESS_MASK;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("04b49b1a-15c7-4381-a450-ead756b642df") 
enum FABRIC_SECURITY_ACE_TYPE
    {
        FABRIC_SECURITY_ACE_TYPE_INVALID	= 0,
        FABRIC_SECURITY_ACE_TYPE_ALLOWED	= 0x1
    } 	FABRIC_SECURITY_ACE_TYPE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("346828f1-cd93-4a05-afb2-8b4afd3ee619") 
enum FABRIC_PROGRESS_UNIT_TYPE
    {
        FABRIC_PROGRESS_UNIT_TYPE_INVALID	= 0,
        FABRIC_PROGRESS_UNIT_TYPE_BYTES	= 0x1,
        FABRIC_PROGRESS_UNIT_TYPE_SERVICE_SUB_PACKAGES	= 0x2,
        FABRIC_PROGRESS_UNIT_TYPE_FILES	= 0x3
    } 	FABRIC_PROGRESS_UNIT_TYPE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("eb7f2da9-03ec-4ece-b0ef-bf07205d480d") 
enum FABRIC_COMPOSE_DEPLOYMENT_STATUS
    {
        FABRIC_COMPOSE_DEPLOYMENT_STATUS_INVALID	= 0,
        FABRIC_COMPOSE_DEPLOYMENT_STATUS_PROVISIONING	= 0x1,
        FABRIC_COMPOSE_DEPLOYMENT_STATUS_CREATING	= 0x2,
        FABRIC_COMPOSE_DEPLOYMENT_STATUS_READY	= 0x3,
        FABRIC_COMPOSE_DEPLOYMENT_STATUS_DELETING	= 0x4,
        FABRIC_COMPOSE_DEPLOYMENT_STATUS_UNPROVISIONING	= 0x5,
        FABRIC_COMPOSE_DEPLOYMENT_STATUS_FAILED	= 0x6,
        FABRIC_COMPOSE_DEPLOYMENT_STATUS_UPGRADING	= 0x7
    } 	FABRIC_COMPOSE_DEPLOYMENT_STATUS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("b5f595c8-2ce8-44a6-8611-4decf03a40c0") 
enum FABRIC_COMPOSE_DEPLOYMENT_UPGRADE_STATE
    {
        FABRIC_COMPOSE_DEPLOYMENT_UPGRADE_STATE_INVALID	= 0,
        FABRIC_COMPOSE_DEPLOYMENT_UPGRADE_STATE_PROVISIONING_TARGET	= 0x1,
        FABRIC_COMPOSE_DEPLOYMENT_UPGRADE_STATE_ROLLING_FORWARD_IN_PROGRESS	= 0x2,
        FABRIC_COMPOSE_DEPLOYMENT_UPGRADE_STATE_ROLLING_FORWARD_PENDING	= 0x3,
        FABRIC_COMPOSE_DEPLOYMENT_UPGRADE_STATE_UNPROVISIONING_CURRENT	= 0x4,
        FABRIC_COMPOSE_DEPLOYMENT_UPGRADE_STATE_ROLLING_FORWARD_COMPLETED	= 0x5,
        FABRIC_COMPOSE_DEPLOYMENT_UPGRADE_STATE_ROLLING_BACK_IN_PROGRESS	= 0x6,
        FABRIC_COMPOSE_DEPLOYMENT_UPGRADE_STATE_UNPROVISIONING_TARGET	= 0x7,
        FABRIC_COMPOSE_DEPLOYMENT_UPGRADE_STATE_ROLLING_BACK_COMPLETED	= 0x8,
        FABRIC_COMPOSE_DEPLOYMENT_UPGRADE_STATE_FAILED	= 0x9
    } 	FABRIC_COMPOSE_DEPLOYMENT_UPGRADE_STATE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("6fd2680b-63db-424a-988e-576c73977be2") 
enum FABRIC_BACKUP_POLICY_TYPE
    {
        FABRIC_BACKUP_POLICY_TYPE_INVALID	= 0,
        FABRIC_BACKUP_POLICY_TYPE_FREQUENCY_BASED	= 0x1,
        FABRIC_BACKUP_POLICY_TYPE_SCHEDULE_BASED	= 0x2
    } 	FABRIC_BACKUP_POLICY_TYPE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("9fd97a6c-63bf-4691-b34c-734dbe73aa5c") 
enum FABRIC_BACKUP_POLICY_RUN_SCHEDULE_MODE
    {
        FABRIC_BACKUP_POLICY_RUN_SCHEDULE_MODE_INVALID	= 0,
        FABRIC_BACKUP_POLICY_RUN_SCHEDULE_MODE_DAILY	= 0x1,
        FABRIC_BACKUP_POLICY_RUN_SCHEDULE_MODE_WEEKLY	= 0x2
    } 	FABRIC_BACKUP_POLICY_RUN_SCHEDULE_MODE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("98a5de3d-b10c-4787-ab0b-0810045caa8b") 
enum FABRIC_BACKUP_POLICY_RUN_FREQUENCY_MODE
    {
        FABRIC_BACKUP_POLICY_RUN_FREQUENCY_MODE_INVALID	= 0,
        FABRIC_BACKUP_POLICY_RUN_FREQUENCY_MODE_MINUTES	= 0x1,
        FABRIC_BACKUP_POLICY_RUN_FREQUENCY_MODE_HOURS	= 0x2
    } 	FABRIC_BACKUP_POLICY_RUN_FREQUENCY_MODE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("0c51aec0-922d-4f07-961f-26e7c0ab686c") 
enum FABRIC_BACKUP_STORE_TYPE
    {
        FABRIC_BACKUP_STORE_TYPE_INVALID	= 0,
        FABRIC_BACKUP_STORE_TYPE_FILE_SHARE	= 0x1,
        FABRIC_BACKUP_STORE_TYPE_AZURE_STORE	= 0x2
    } 	FABRIC_BACKUP_STORE_TYPE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("9460d8aa-e70d-480e-a118-453016a0867e") 
enum FABRIC_BACKUP_STORE_FILE_SHARE_ACCESS_TYPE
    {
        FABRIC_BACKUP_STORE_FILE_SHARE_ACCESS_TYPE_NONE	= 0,
        FABRIC_BACKUP_STORE_FILE_SHARE_ACCESS_TYPE_DOMAIN_USER	= 0x1
    } 	FABRIC_BACKUP_STORE_FILE_SHARE_ACCESS_TYPE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("07f79345-73c5-420d-85f1-5e709a0ef4fb") 
enum FABRIC_BACKUP_OPTION
    {
        FABRIC_BACKUP_OPTION_INVALID	= 0,
        FABRIC_BACKUP_OPTION_FULL	= 0x1,
        FABRIC_BACKUP_OPTION_INCREMENTAL	= 0x2
    } 	FABRIC_BACKUP_OPTION;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("3804163b-30cf-43b7-baae-90899991b651") 
enum FABRIC_RESTORE_POLICY
    {
        FABRIC_RESTORE_POLICY_INVALID	= 0,
        FABRIC_RESTORE_POLICY_SAFE	= 0x1,
        FABRIC_RESTORE_POLICY_FORCE	= 0x2
    } 	FABRIC_RESTORE_POLICY;

typedef struct FABRIC_IMAGE_STORE_COPY_DESCRIPTION
    {
    LPCWSTR RemoteSource;
    LPCWSTR RemoteDestination;
    FABRIC_STRING_LIST *SkipFiles;
    FABRIC_IMAGE_STORE_COPY_FLAG CopyFlag;
    BOOLEAN CheckMarkFile;
    void *Reserved;
    } 	FABRIC_IMAGE_STORE_COPY_DESCRIPTION;

typedef struct FABRIC_IMAGE_STORE_LIST_DESCRIPTION
    {
    LPCWSTR RemoteLocation;
    LPCWSTR ContinuationToken;
    BOOLEAN IsRecursive;
    void *Reserved;
    } 	FABRIC_IMAGE_STORE_LIST_DESCRIPTION;

typedef struct FABRIC_IMAGE_STORE_FILE_INFO_QUERY_RESULT_ITEM
    {
    LPCWSTR StoreRelativePath;
    LPCWSTR FileVersion;
    LPCWSTR FileSize;
    LPCWSTR ModifiedDate;
    } 	FABRIC_IMAGE_STORE_FILE_INFO_QUERY_RESULT_ITEM;

typedef struct FABRIC_IMAGE_STORE_FOLDER_INFO_QUERY_RESULT_ITEM
    {
    LPCWSTR StoreRelativePath;
    LPCWSTR FileCount;
    } 	FABRIC_IMAGE_STORE_FOLDER_INFO_QUERY_RESULT_ITEM;

typedef struct FABRIC_IMAGE_STORE_FILE_INFO_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_IMAGE_STORE_FILE_INFO_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_IMAGE_STORE_FILE_INFO_QUERY_RESULT_LIST;

typedef struct FABRIC_IMAGE_STORE_FOLDER_INFO_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_IMAGE_STORE_FOLDER_INFO_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_IMAGE_STORE_FOLDER_INFO_QUERY_RESULT_LIST;

typedef struct FABRIC_IMAGE_STORE_CONTENT_QUERY_RESULT
    {
    FABRIC_IMAGE_STORE_FILE_INFO_QUERY_RESULT_LIST *Files;
    FABRIC_IMAGE_STORE_FOLDER_INFO_QUERY_RESULT_LIST *Folders;
    } 	FABRIC_IMAGE_STORE_CONTENT_QUERY_RESULT;

typedef struct FABRIC_IMAGE_STORE_PAGED_CONTENT_QUERY_RESULT
    {
    FABRIC_IMAGE_STORE_FILE_INFO_QUERY_RESULT_LIST *Files;
    FABRIC_IMAGE_STORE_FOLDER_INFO_QUERY_RESULT_LIST *Folders;
    LPCWSTR ContinuationToken;
    void *Reserved;
    } 	FABRIC_IMAGE_STORE_PAGED_CONTENT_QUERY_RESULT;

typedef struct FABRIC_IMAGE_STORE_PAGED_RELATIVEPATH_QUERY_RESULT
    {
    FABRIC_STRING_LIST *Files;
    LPCWSTR ContinuationToken;
    void *Reserved;
    } 	FABRIC_IMAGE_STORE_PAGED_RELATIVEPATH_QUERY_RESULT;

typedef struct FABRIC_UPLOAD_CHUNK_RANGE_QUERY_RESULT_ITEM
    {
    LPCWSTR StartPosition;
    LPCWSTR EndPosition;
    void *Reserved;
    } 	FABRIC_UPLOAD_CHUNK_RANGE_QUERY_RESULT_ITEM;

typedef struct FABRIC_UPLOAD_CHUNK_RANGE_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_UPLOAD_CHUNK_RANGE_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_UPLOAD_CHUNK_RANGE_QUERY_RESULT_LIST;

typedef struct FABRIC_UPLOAD_SESSION_INFO_QUERY_RESULT_ITEM
    {
    LPCWSTR StoreRelativePath;
    FABRIC_UPLOAD_SESSION_ID SessionId;
    LPCWSTR FileSize;
    LPCWSTR ModifiedDate;
    FABRIC_UPLOAD_CHUNK_RANGE_QUERY_RESULT_LIST *ExpectedRanges;
    void *Reserved;
    } 	FABRIC_UPLOAD_SESSION_INFO_QUERY_RESULT_ITEM;

typedef struct FABRIC_UPLOAD_SESSION_INFO_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_UPLOAD_SESSION_INFO_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_UPLOAD_SESSION_INFO_QUERY_RESULT_LIST;

typedef struct FABRIC_UPLOAD_SESSION_QUERY_RESULT
    {
    FABRIC_UPLOAD_SESSION_INFO_QUERY_RESULT_LIST *UploadSessions;
    void *Reserved;
    } 	FABRIC_UPLOAD_SESSION_QUERY_RESULT;

typedef struct FABRIC_NODE_TASK_DESCRIPTION
    {
    LPCWSTR NodeName;
    FABRIC_NODE_TASK_TYPE TaskType;
    void *Reserved;
    } 	FABRIC_NODE_TASK_DESCRIPTION;

typedef struct FABRIC_NODE_TASK_DESCRIPTION_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_NODE_TASK_DESCRIPTION *Items;
    } 	FABRIC_NODE_TASK_DESCRIPTION_LIST;

typedef struct FABRIC_INFRASTRUCTURE_TASK_DESCRIPTION
    {
    FABRIC_PARTITION_ID SourcePartitionId;
    LPCWSTR TaskId;
    ULONGLONG InstanceId;
    FABRIC_NODE_TASK_DESCRIPTION_LIST *NodeTasks;
    void *Reserved;
    } 	FABRIC_INFRASTRUCTURE_TASK_DESCRIPTION;

typedef struct FABRIC_INFRASTRUCTURE_TASK_QUERY_RESULT_ITEM
    {
    FABRIC_INFRASTRUCTURE_TASK_DESCRIPTION *Description;
    FABRIC_INFRASTRUCTURE_TASK_STATE State;
    void *Reserved;
    } 	FABRIC_INFRASTRUCTURE_TASK_QUERY_RESULT_ITEM;

typedef struct FABRIC_INFRASTRUCTURE_TASK_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ void *Items;
    } 	FABRIC_INFRASTRUCTURE_TASK_QUERY_RESULT_LIST;

typedef struct FABRIC_REPLICATOR_LOG_SETTINGS
    {
    DWORD Flags;
    LPCWSTR ContainerPath;
    LOG_CONTAINER_ID ContainerId;
    ULONG MaxCheckpointSize;
    void *Reserved;
    } 	FABRIC_REPLICATOR_LOG_SETTINGS;

typedef struct FABRIC_OPERATION_METADATA_EX
    {
    FABRIC_OPERATION_TYPE_EX Type;
    FABRIC_SEQUENCE_NUMBER SequenceNumber;
    FABRIC_SEQUENCE_NUMBER AtomicGroupId;
    void *Reserved;
    } 	FABRIC_OPERATION_METADATA_EX;

typedef struct FABRIC_STRING_PAIR_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_STRING_PAIR *Items;
    } 	FABRIC_STRING_PAIR_LIST;

typedef struct FABRIC_QUERY_RESULT
    {
    FABRIC_QUERY_RESULT_KIND Kind;
    void *Value;
    } 	FABRIC_QUERY_RESULT;

typedef struct FABRIC_QUERY_RESULT_LIST
    {
    FABRIC_QUERY_RESULT_ITEM_KIND Kind;
    ULONG Count;
    /* [size_is] */ void *Items;
    } 	FABRIC_QUERY_RESULT_LIST;

typedef struct FABRIC_QUERY_RESULT_ITEM
    {
    FABRIC_QUERY_RESULT_ITEM_KIND Kind;
    void *Item;
    } 	FABRIC_QUERY_RESULT_ITEM;

typedef struct FABRIC_QUERY_METADATA_QUERY_RESULT_ITEM
    {
    LPCWSTR QueryName;
    FABRIC_STRING_LIST *RequiredArguments;
    FABRIC_STRING_LIST *OptionalArguments;
    void *Reserved;
    } 	FABRIC_QUERY_METADATA_QUERY_RESULT_ITEM;

typedef struct FABRIC_INTERNAL_REPLICATION_QUEUE_COUNTERS
    {
    ULONGLONG operationCount;
    ULONGLONG queueSizeBytes;
    FABRIC_SEQUENCE_NUMBER allApplyAckLsn;
    } 	FABRIC_INTERNAL_REPLICATION_QUEUE_COUNTERS;

typedef struct FABRIC_TOKEN_CLAIM
    {
    LPCWSTR ClaimType;
    LPCWSTR Issuer;
    LPCWSTR OriginalIssuer;
    LPCWSTR Subject;
    LPCWSTR Value;
    LPCWSTR ValueType;
    void *Reserved;
    } 	FABRIC_TOKEN_CLAIM;

typedef struct FABRIC_TOKEN_CLAIM_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_TOKEN_CLAIM *Items;
    } 	FABRIC_TOKEN_CLAIM_RESULT_LIST;

typedef struct FABRIC_TOKEN_SERVICE_METADATA
    {
    LPCWSTR Metadata;
    LPCWSTR ServiceName;
    LPCWSTR ServiceDnsName;
    void *Reserved;
    } 	FABRIC_TOKEN_SERVICE_METADATA;

typedef struct FABRIC_SECURITY_RESOURCE_IDENTIFIER
    {
    FABRIC_SECURITY_RESOURCE_IDENTIFIER_KIND Kind;
    void *Value;
    } 	FABRIC_SECURITY_RESOURCE_IDENTIFIER;

typedef struct FABRIC_SECURITY_IMAGESTORE_PATH_RESOURCE_IDENTIFIER
    {
    LPCWSTR Path;
    void *Reserved;
    } 	FABRIC_SECURITY_IMAGESTORE_PATH_RESOURCE_IDENTIFIER;

typedef struct FABRIC_SECURITY_APPLICATION_TYPE_RESOURCE_IDENTIFIER
    {
    LPCWSTR ApplicationTypeName;
    void *Reserved;
    } 	FABRIC_SECURITY_APPLICATION_TYPE_RESOURCE_IDENTIFIER;

typedef struct FABRIC_SECURITY_NAME_RESOURCE_IDENTIFIER
    {
    FABRIC_URI Name;
    void *Reserved;
    } 	FABRIC_SECURITY_NAME_RESOURCE_IDENTIFIER;

typedef struct FABRIC_SECURITY_APPLICATION_RESOURCE_IDENTIFIER
    {
    FABRIC_URI ApplicationName;
    void *Reserved;
    } 	FABRIC_SECURITY_APPLICATION_RESOURCE_IDENTIFIER;

typedef struct FABRIC_SECURITY_SERVICE_RESOURCE_IDENTIFIER
    {
    FABRIC_URI ServiceName;
    void *Reserved;
    } 	FABRIC_SECURITY_SERVICE_RESOURCE_IDENTIFIER;

typedef struct FABRIC_SECURITY_PRINCIPAL_IDENTIFIER
    {
    FABRIC_SECURITY_PRINCIPAL_IDENTIFIER_KIND Kind;
    void *Value;
    } 	FABRIC_SECURITY_PRINCIPAL_IDENTIFIER;

typedef struct FABRIC_SECURITY_X509_PRINCIPAL_IDENTIFIER
    {
    LPCWSTR CommonName;
    void *Reserved;
    } 	FABRIC_SECURITY_X509_PRINCIPAL_IDENTIFIER;

typedef struct FABRIC_SECURITY_WINDOWS_PRINCIPAL_IDENTIFIER
    {
    LPCWSTR AccountName;
    void *Reserved;
    } 	FABRIC_SECURITY_WINDOWS_PRINCIPAL_IDENTIFIER;

typedef struct FABRIC_SECURITY_CLAIM_PRINCIPAL_IDENTIFIER
    {
    LPCWSTR Claim;
    void *Reserved;
    } 	FABRIC_SECURITY_CLAIM_PRINCIPAL_IDENTIFIER;

typedef struct FABRIC_SECURITY_ROLE_PRINCIPAL_IDENTIFIER
    {
    LPCWSTR RoleName;
    void *Reserved;
    } 	FABRIC_SECURITY_ROLE_PRINCIPAL_IDENTIFIER;

typedef struct FABRIC_SECURITY_ACE
    {
    FABRIC_SECURITY_ACE_TYPE AceType;
    const FABRIC_SECURITY_PRINCIPAL_IDENTIFIER *Principal;
    DWORD AccessMask;
    void *Reserved;
    } 	FABRIC_SECURITY_ACE;

typedef struct FABRIC_SECURITY_ACL
    {
    ULONG AceCount;
    /* [size_is] */ const FABRIC_SECURITY_ACE *AceItems;
    void *Reserved;
    } 	FABRIC_SECURITY_ACL;

typedef struct FABRIC_MOVE_PRIMARY_REPLICA_DESCRIPTION
    {
    LPCWSTR NodeName;
    FABRIC_PARTITION_ID PartitionId;
    void *Reserved;
    } 	FABRIC_MOVE_PRIMARY_REPLICA_DESCRIPTION;

typedef struct FABRIC_MOVE_PRIMARY_REPLICA_DESCRIPTION_EX1
    {
    BOOLEAN IgnoreConstraints;
    void *Reserved;
    } 	FABRIC_MOVE_PRIMARY_REPLICA_DESCRIPTION_EX1;

typedef struct FABRIC_MOVE_SECONDARY_REPLICA_DESCRIPTION
    {
    LPCWSTR CurrentSecondaryNodeName;
    LPCWSTR NewSecondaryNodeName;
    FABRIC_PARTITION_ID PartitionId;
    void *Reserved;
    } 	FABRIC_MOVE_SECONDARY_REPLICA_DESCRIPTION;

typedef struct FABRIC_MOVE_SECONDARY_REPLICA_DESCRIPTION_EX1
    {
    BOOLEAN IgnoreConstraints;
    void *Reserved;
    } 	FABRIC_MOVE_SECONDARY_REPLICA_DESCRIPTION_EX1;

typedef struct FABRIC_OPERATION_DATA_BUFFER_LIST
    {
    ULONG Count;
    /* [size_is] */ FABRIC_OPERATION_DATA_BUFFER *Buffers;
    } 	FABRIC_OPERATION_DATA_BUFFER_LIST;

typedef struct FABRIC_STATE_PROVIDER_FACTORY_ARGUMENTS
    {
    FABRIC_URI name;
    LPCWSTR typeName;
    FABRIC_PARTITION_ID partitionId;
    FABRIC_REPLICA_ID replicaId;
    FABRIC_STATE_PROVIDER_ID stateProviderId;
    FABRIC_OPERATION_DATA_BUFFER_LIST *initializationParameters;
    void *Reserved;
    } 	FABRIC_STATE_PROVIDER_FACTORY_ARGUMENTS;

typedef struct FABRIC_COMPOSE_DEPLOYMENT_DESCRIPTION
    {
    LPCWSTR DeploymentName;
    LPCWSTR ComposeFilePath;
    LPCWSTR OverridesFilePath;
    LPCWSTR ContainerRepositoryUserName;
    LPCWSTR ContainerRepositoryPassword;
    BOOLEAN IsPasswordEncrypted;
    void *Reserved;
    } 	FABRIC_COMPOSE_DEPLOYMENT_DESCRIPTION;

typedef struct FABRIC_COMPOSE_DEPLOYMENT_STATUS_QUERY_DESCRIPTION
    {
    LPCWSTR DeploymentNameFilter;
    LPCWSTR ContinuationToken;
    LONG MaxResults;
    void *Reserved;
    } 	FABRIC_COMPOSE_DEPLOYMENT_STATUS_QUERY_DESCRIPTION;

typedef struct FABRIC_COMPOSE_DEPLOYMENT_STATUS_QUERY_RESULT_ITEM
    {
    LPCWSTR DeploymentName;
    FABRIC_URI ApplicationName;
    FABRIC_COMPOSE_DEPLOYMENT_STATUS Status;
    LPCWSTR StatusDetails;
    void *Reserved;
    } 	FABRIC_COMPOSE_DEPLOYMENT_STATUS_QUERY_RESULT_ITEM;

typedef struct FABRIC_COMPOSE_DEPLOYMENT_STATUS_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_COMPOSE_DEPLOYMENT_STATUS_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_COMPOSE_DEPLOYMENT_STATUS_QUERY_RESULT_LIST;

typedef struct FABRIC_COMPOSE_DEPLOYMENT_UPGRADE_DESCRIPTION
    {
    LPCWSTR DeploymentName;
    FABRIC_STRING_LIST ComposeFilePaths;
    FABRIC_STRING_LIST ServiceFabricSettingsFilePaths;
    LPCWSTR ContainerRegistryUserName;
    LPCWSTR ContainerRegistryPassword;
    BOOLEAN IsPasswordEncrypted;
    FABRIC_APPLICATION_UPGRADE_KIND UpgradeKind;
    void *UpgradePolicyDescription;
    void *Reserved;
    } 	FABRIC_COMPOSE_DEPLOYMENT_UPGRADE_DESCRIPTION;

typedef struct FABRIC_COMPOSE_DEPLOYMENT_UPGRADE_PROGRESS
    {
    LPCWSTR DeploymentName;
    FABRIC_URI ApplicationName;
    FABRIC_APPLICATION_UPGRADE_KIND UpgradeKind;
    void *UpgradePolicyDescription;
    LPCWSTR TargetApplicationTypeVersion;
    FABRIC_COMPOSE_DEPLOYMENT_UPGRADE_STATE UpgradeState;
    LPCWSTR NextUpgradeDomain;
    const FABRIC_UPGRADE_DOMAIN_STATUS_DESCRIPTION_LIST *UpgradeDomains;
    DWORD UpgradeDurationInSeconds;
    DWORD CurrentUpgradeDomainDurationInSeconds;
    const FABRIC_HEALTH_EVALUATION_LIST *ApplicationUnhealthyEvaluations;
    const FABRIC_UPGRADE_DOMAIN_PROGRESS *CurrentUpgradeDomainProgress;
    FILETIME StartTimestampUtc;
    FILETIME FailureTimestampUtc;
    FABRIC_UPGRADE_FAILURE_REASON FailureReason;
    const FABRIC_UPGRADE_DOMAIN_PROGRESS *UpgradeDomainProgressAtFailure;
    LPCWSTR UpgradeStatusDetails;
    LPCWSTR ApplicationUpgradeStatusDetails;
    void *Reserved;
    } 	FABRIC_COMPOSE_DEPLOYMENT_UPGRADE_PROGRESS;

typedef struct FABRIC_DELETE_COMPOSE_DEPLOYMENT_DESCRIPTION
    {
    LPCWSTR DeploymentName;
    void *Reserved;
    } 	FABRIC_DELETE_COMPOSE_DEPLOYMENT_DESCRIPTION;

typedef struct FABRIC_UNRELIABLETRANSPORT_BEHAVIOR
    {
    LPCWSTR Destination;
    LPCWSTR Action;
    DOUBLE ProbabilityToApply;
    DOUBLE DelayInSeconds;
    DOUBLE DelaySpanInSeconds;
    INT Priority;
    INT ApplyCount;
    const FABRIC_STRING_PAIR_LIST *Filters;
    void *Reserved;
    } 	FABRIC_UNRELIABLETRANSPORT_BEHAVIOR;

typedef struct FABRIC_OPERATION_DATA_BUFFER_EX1
    {
    ULONG Offset;
    ULONG Count;
    BYTE *Buffer;
    } 	FABRIC_OPERATION_DATA_BUFFER_EX1;

typedef struct FABRIC_SERVICE_TRANSPORT_SETTINGS
    {
    ULONG OperationTimeoutInSeconds;
    ULONG KeepAliveTimeoutInSeconds;
    ULONG MaxMessageSize;
    ULONG MaxConcurrentCalls;
    ULONG MaxQueueSize;
    const FABRIC_SECURITY_CREDENTIALS *SecurityCredentials;
    void *Reserved;
    } 	FABRIC_SERVICE_TRANSPORT_SETTINGS;

typedef struct FABRIC_SERVICE_TRANSPORT_SETTINGS_EX1
    {
    ULONG ConnectTimeoutInMilliseconds;
    void *Reserved;
    } 	FABRIC_SERVICE_TRANSPORT_SETTINGS_EX1;

typedef struct FABRIC_SERVICE_LISTENER_ADDRESS
    {
    LPCWSTR IPAddressOrFQDN;
    ULONG Port;
    LPCWSTR Path;
    } 	FABRIC_SERVICE_LISTENER_ADDRESS;

typedef struct FABRIC_MESSAGE_BUFFER
    {
    ULONG BufferSize;
    /* [size_is] */ BYTE *Buffer;
    } 	FABRIC_MESSAGE_BUFFER;

typedef struct FABRIC_MESSAGE_BODY_BUFFER
    {
    ULONG Count;
    /* [size_is] */ FABRIC_MESSAGE_BUFFER *Items;
    } 	FABRIC_MESSAGE_BODY_BUFFER;

typedef struct FABRIC_STOP_NODE_DESCRIPTION_INTERNAL
    {
    LPCWSTR NodeName;
    FABRIC_NODE_INSTANCE_ID NodeInstanceId;
    DWORD StopDurationInSeconds;
    void *Reserved;
    } 	FABRIC_STOP_NODE_DESCRIPTION_INTERNAL;

typedef struct FABRIC_CHAOS_CLIENT_TYPE
    {
    LPCWSTR ClientType;
    void *Reserved;
    } 	FABRIC_CHAOS_CLIENT_TYPE;

typedef struct FABRIC_KEY_VALUE_STORE_REPLICA_SETTINGS_V2
    {
    LPCWSTR WorkingDirectory;
    const KTLLOGGER_SHARED_LOG_SETTINGS *SharedLogSettings;
    FABRIC_KEY_VALUE_STORE_NOTIFICATION_MODE SecondaryNotificationMode;
    void *Reserved;
    } 	FABRIC_KEY_VALUE_STORE_REPLICA_SETTINGS_V2;

typedef struct FABRIC_BACKUP_PARTITION_INFO
    {
    FABRIC_URI ServiceName;
    FABRIC_PARTITION_ID PartitionId;
    void *Reserved;
    } 	FABRIC_BACKUP_PARTITION_INFO;

typedef struct FABRIC_BACKUP_STORE_INFORMATION
    {
    FABRIC_BACKUP_STORE_TYPE StoreType;
    void *StoreAccessInformation;
    void *Reserved;
    } 	FABRIC_BACKUP_STORE_INFORMATION;

typedef struct FABRIC_BACKUP_STORE_FILE_SHARE_INFORMATION
    {
    LPCWSTR FileSharePath;
    FABRIC_BACKUP_STORE_FILE_SHARE_ACCESS_TYPE AccessType;
    LPCWSTR PrimaryUserName;
    LPCWSTR PrimaryPassword;
    LPCWSTR SecondaryUserName;
    LPCWSTR SecondaryPassword;
    BOOLEAN IsPasswordEncrypted;
    void *Reserved;
    } 	FABRIC_BACKUP_STORE_FILE_SHARE_INFORMATION;

typedef struct FABRIC_BACKUP_STORE_AZURE_STORAGE_INFORMATION
    {
    LPCWSTR ConnectionString;
    LPCWSTR ContainerName;
    LPCWSTR FolderPath;
    BOOLEAN IsConnectionStringEncrypted;
    void *Reserved;
    } 	FABRIC_BACKUP_STORE_AZURE_STORAGE_INFORMATION;

typedef struct FABRIC_BACKUP_POLICY
    {
    LPCWSTR Name;
    GUID PolicyId;
    FABRIC_BACKUP_POLICY_TYPE PolicyType;
    void *PolicyDescription;
    BYTE MaxIncrementalBackups;
    const FABRIC_BACKUP_STORE_INFORMATION *StoreInformation;
    void *Reserved;
    } 	FABRIC_BACKUP_POLICY;

typedef struct FABRIC_BACKUP_SCHEDULE_RUNTIME_LIST
    {
    ULONG Count;
    /* [size_is] */ DWORD *RunTimes;
    } 	FABRIC_BACKUP_SCHEDULE_RUNTIME_LIST;

typedef struct FABRIC_SCHEDULE_BASED_BACKUP_POLICY
    {
    FABRIC_BACKUP_POLICY_RUN_SCHEDULE_MODE RunScheduleType;
    const FABRIC_BACKUP_SCHEDULE_RUNTIME_LIST *RunTimesList;
    BYTE RunDays;
    void *Reserved;
    } 	FABRIC_SCHEDULE_BASED_BACKUP_POLICY;

typedef struct FABRIC_FREQUENCY_BASED_BACKUP_POLICY
    {
    FABRIC_BACKUP_POLICY_RUN_FREQUENCY_MODE RunFrequencyType;
    USHORT Value;
    void *Reserved;
    } 	FABRIC_FREQUENCY_BASED_BACKUP_POLICY;

typedef struct FABRIC_BACKUP_CONFIGURATION
    {
    DWORD OperationTimeoutMilliseconds;
    const FABRIC_BACKUP_STORE_INFORMATION *StoreInformation;
    void *Reserved;
    } 	FABRIC_BACKUP_CONFIGURATION;

typedef struct FABRIC_BACKUP_OPERATION_RESULT
    {
    FABRIC_URI ServiceName;
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_BACKUP_OPERATION_ID OperationId;
    HRESULT ErrorCode;
    LPCWSTR Message;
    GUID BackupId;
    LPCWSTR BackupLocation;
    FABRIC_EPOCH EpochOfLastBackupRecord;
    FABRIC_SEQUENCE_NUMBER LsnOfLastBackupRecord;
    FILETIME TimeStampUtc;
    void *Reserved;
    } 	FABRIC_BACKUP_OPERATION_RESULT;

typedef struct FABRIC_RESTORE_OPERATION_RESULT
    {
    FABRIC_URI ServiceName;
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_RESTORE_OPERATION_ID OperationId;
    HRESULT ErrorCode;
    LPCWSTR Message;
    FILETIME TimeStampUtc;
    void *Reserved;
    } 	FABRIC_RESTORE_OPERATION_RESULT;

typedef struct FABRIC_RESTORE_POINT_DETAILS
    {
    FABRIC_RESTORE_OPERATION_ID OperationId;
    const FABRIC_STRING_LIST *BackupLocations;
    const FABRIC_BACKUP_STORE_INFORMATION *StoreInformation;
    BOOLEAN UserInitiatedOperation;
    void *Reserved;
    } 	FABRIC_RESTORE_POINT_DETAILS;

typedef struct FABRIC_BACKUP_UPLOAD_INFO
    {
    LPCWSTR BackupMetadataFilePath;
    LPCWSTR LocalBackupPath;
    LPCWSTR DestinationFolderName;
    void *Reserved;
    } 	FABRIC_BACKUP_UPLOAD_INFO;

typedef struct FABRIC_BACKUP_DOWNLOAD_INFO
    {
    const FABRIC_STRING_LIST *BackupLocations;
    LPCWSTR DestinationRootPath;
    void *Reserved;
    } 	FABRIC_BACKUP_DOWNLOAD_INFO;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("06341b35-92fd-45ab-8fd8-59620cbdf9b2") 
enum FABRIC_CONTAINER_ISOLATION_MODE
    {
        FABRIC_CONTAINER_ISOLATION_MODE_UNKNOWN	= 0,
        FABRIC_CONTAINER_ISOLATION_MODE_PROCESS	= 0x1,
        FABRIC_CONTAINER_ISOLATION_MODE_HYPER_V	= 0x2
    } 	FABRIC_CONTAINER_ISOLATION_MODE;

typedef struct FABRIC_CONTAINER_DRIVER_OPTION_DESCRIPTION
    {
    LPCWSTR Name;
    LPCWSTR Value;
    BOOLEAN IsEncrypted;
    void *Reserved;
    } 	FABRIC_CONTAINER_DRIVER_OPTION_DESCRIPTION;

typedef struct FABRIC_CONTAINER_DRIVER_OPTION_DESCRIPTION_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_CONTAINER_DRIVER_OPTION_DESCRIPTION *Items;
    } 	FABRIC_CONTAINER_DRIVER_OPTION_DESCRIPTION_LIST;

typedef struct FABRIC_CONTAINER_VOLUME_DESCRIPTION
    {
    LPCWSTR Source;
    LPCWSTR Destination;
    LPCWSTR Driver;
    BOOLEAN IsReadOnly;
    FABRIC_CONTAINER_DRIVER_OPTION_DESCRIPTION_LIST *DriverOpts;
    void *Reserved;
    } 	FABRIC_CONTAINER_VOLUME_DESCRIPTION;

typedef struct FABRIC_CONTAINER_VOLUME_DESCRIPTION_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_CONTAINER_VOLUME_DESCRIPTION *Items;
    } 	FABRIC_CONTAINER_VOLUME_DESCRIPTION_LIST;

typedef struct FABRIC_CONTAINER_LOG_CONFIG_DESCRIPTION
    {
    LPCWSTR Driver;
    FABRIC_CONTAINER_DRIVER_OPTION_DESCRIPTION_LIST *DriverOpts;
    void *Reserved;
    } 	FABRIC_CONTAINER_LOG_CONFIG_DESCRIPTION;

typedef struct FABRIC_REPOSITORY_CREDENTIAL_DESCRIPTION
    {
    LPCWSTR AccountName;
    LPCWSTR Password;
    LPCWSTR Email;
    BOOLEAN IsPasswordEncrypted;
    void *Reserved;
    } 	FABRIC_REPOSITORY_CREDENTIAL_DESCRIPTION;

typedef struct FABRIC_CONTAINER_HEALTH_CONFIG_DESCRIPTION
    {
    BOOLEAN IncludeDockerHealthStatusInSystemHealthReport;
    BOOLEAN RestartContainerOnUnhealthyDockerHealthStatus;
    void *Reserved;
    } 	FABRIC_CONTAINER_HEALTH_CONFIG_DESCRIPTION;

typedef struct FABRIC_CONTAINER_DESCRIPTION
    {
    LPCWSTR ApplicationName;
    LPCWSTR ServiceName;
    LPCWSTR ApplicationId;
    LPCWSTR ContainerName;
    LPCWSTR DeploymentFolder;
    LPCWSTR NodeWorkFolder;
    LPCWSTR AssignedIp;
    LPCWSTR EntryPoint;
    LPCWSTR HostName;
    LPCWSTR GroupContainerName;
    FABRIC_CONTAINER_ISOLATION_MODE IsolationMode;
    FABRIC_STRING_PAIR_LIST *PortBindings;
    FABRIC_CONTAINER_LOG_CONFIG_DESCRIPTION *LogConfig;
    FABRIC_CONTAINER_VOLUME_DESCRIPTION_LIST *Volumes;
    FABRIC_STRING_LIST *DnsServers;
    FABRIC_STRING_LIST *SecurityOptions;
    FABRIC_REPOSITORY_CREDENTIAL_DESCRIPTION *RepositoryCredential;
    FABRIC_CONTAINER_HEALTH_CONFIG_DESCRIPTION *HealthConfig;
    BOOLEAN AutoRemove;
    BOOLEAN RunInteractive;
    BOOLEAN IsContainerRoot;
    LPCWSTR CodePackageName;
    LPCWSTR ServicePackageActivationId;
    LPCWSTR PartitionId;
    void *Reserved;
    } 	FABRIC_CONTAINER_DESCRIPTION;

typedef struct FABRIC_PROCESS_DEBUG_PARAMETERS
    {
    LPCWSTR ExePath;
    LPCWSTR Arguments;
    LPCWSTR LockFile;
    LPCWSTR WorkingFolder;
    LPCWSTR DebugParametersFile;
    FABRIC_STRING_PAIR_LIST *EnvVars;
    FABRIC_STRING_LIST *ContainerEntryPoints;
    FABRIC_STRING_LIST *ContainerMountedVolumes;
    FABRIC_STRING_LIST *ContainerEnvironmentBlock;
    void *Reserved;
    } 	FABRIC_PROCESS_DEBUG_PARAMETERS;

typedef struct FABRIC_RESOURCE_GOVERNANCE_POLICY_DESCRIPTION
    {
    LPCWSTR CodePackageRef;
    ULONG MemoryInMB;
    ULONG MemorySwapInMB;
    ULONG MemoryReservationInMB;
    ULONG CpuShares;
    ULONG CpuPercent;
    ULONG MaximumIOps;
    ULONG MaximumIOBytesps;
    ULONG BlockIOWeight;
    LPCWSTR CpusetCpus;
    ULONGLONG NanoCpus;
    ULONG CpuQuota;
    void *Reserved;
    } 	FABRIC_RESOURCE_GOVERNANCE_POLICY_DESCRIPTION;

typedef struct FABRIC_SERVICE_PACKAGE_RESOURCE_GOVERNANCE_DESCRIPTION
    {
    BOOLEAN IsGoverned;
    ULONG MemoryInMB;
    DOUBLE CpuCores;
    ULONG NotUsed;
    void *Reserved;
    } 	FABRIC_SERVICE_PACKAGE_RESOURCE_GOVERNANCE_DESCRIPTION;

typedef struct FABRIC_PROCESS_DESCRIPTION
    {
    LPCWSTR ExePath;
    LPCWSTR Arguments;
    LPCWSTR StartInDirectory;
    FABRIC_STRING_PAIR_LIST *EnvVars;
    LPCWSTR AppDirectory;
    LPCWSTR TempDirectory;
    LPCWSTR WorkDirectory;
    LPCWSTR LogDirectory;
    BOOLEAN RedirectConsole;
    LPCWSTR RedirectedConsoleFileNamePrefix;
    LONG ConsoleRedirectionFileRetentionCount;
    LONG ConsoleRedirectionFileMaxSizeInKb;
    BOOLEAN ShowNoWindow;
    BOOLEAN AllowChildProcessDetach;
    BOOLEAN NotAttachedToJob;
    FABRIC_PROCESS_DEBUG_PARAMETERS *DebugParameters;
    FABRIC_RESOURCE_GOVERNANCE_POLICY_DESCRIPTION *ResourceGovernancePolicy;
    FABRIC_SERVICE_PACKAGE_RESOURCE_GOVERNANCE_DESCRIPTION *ServicePackageResourceGovernance;
    LPCWSTR CgroupName;
    void *Reserved;
    } 	FABRIC_PROCESS_DESCRIPTION;

typedef struct FABRIC_CONTAINER_IMAGE_DESCRIPTION
    {
    LPCWSTR ImageName;
    FABRIC_REPOSITORY_CREDENTIAL_DESCRIPTION *RepositoryCredential;
    void *Reserved;
    } 	FABRIC_CONTAINER_IMAGE_DESCRIPTION;

typedef struct FABRIC_CONTAINER_IMAGE_DESCRIPTION_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_CONTAINER_IMAGE_DESCRIPTION *Items;
    } 	FABRIC_CONTAINER_IMAGE_DESCRIPTION_LIST;

typedef struct FABRIC_CONTAINER_ACTIVATION_ARGS
    {
    BOOLEAN IsUserLocalSystem;
    LPCWSTR AppHostId;
    LPCWSTR NodeId;
    FABRIC_CONTAINER_DESCRIPTION *ContainerDescription;
    FABRIC_PROCESS_DESCRIPTION *ProcessDescription;
    LPCWSTR FabricBinPath;
    LPCWSTR GatewayIpAddress;
    void *Reserved;
    } 	FABRIC_CONTAINER_ACTIVATION_ARGS;

typedef struct FABRIC_CONTAINER_DEACTIVATION_ARGS
    {
    LPCWSTR ContainerName;
    BOOLEAN ConfiguredForAutoRemove;
    BOOLEAN IsContainerRoot;
    LPCWSTR CgroupName;
    BOOLEAN IsGracefulDeactivation;
    void *Reserved;
    } 	FABRIC_CONTAINER_DEACTIVATION_ARGS;

typedef struct FABRIC_HOSTING_SETTINGS
    {
    LPCWSTR ContainerPackageRootFolder;
    LPCWSTR ContainerFabricBinRootFolder;
    LPCWSTR ContainerFabricLogRootFolder;
    LPCWSTR ContainerAppDeploymentRootFolder;
    LONGLONG DockerRequestTimeout;
    LONGLONG ContainerImageDownloadTimeout;
    LONGLONG ContainerDeactivationTimeout;
    LONG ContainerDeactivationRetryDelayInSec;
    LONG ContainerTerminationMaxRetryCount;
    LONG ContainerEventManagerMaxContinuousFailure;
    LONG ContainerEventManagerFailureBackoffInSec;
    BOOLEAN EnableDockerHealthCheckIntegration;
    LPCWSTR ContainerServiceNamedPipeOrUnixSocketAddress;
    void *Reserved;
    } 	FABRIC_HOSTING_SETTINGS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("98ef99cc-5e03-44a5-b32d-5f7313b3d59d") 
enum FABRIC_CONTAINER_EVENT_TYPE
    {
        FABRIC_CONTAINER_EVENT_TYPE_NONE	= 0,
        FABRIC_CONTAINER_EVENT_TYPE_STOP	= 0x1,
        FABRIC_CONTAINER_EVENT_TYPE_DIE	= 0x2,
        FABRIC_CONTAINER_EVENT_TYPE_HEALTH	= 0x3
    } 	FABRIC_CONTAINER_EVENT_TYPE;

typedef struct FABRIC_CONTAINER_EVENT_DESCRIPTION
    {
    FABRIC_CONTAINER_EVENT_TYPE EventType;
    LPCWSTR ContainerId;
    LPCWSTR ContainerName;
    ULONGLONG TimeStampInSeconds;
    BOOLEAN IsHealthy;
    ULONG ExitCode;
    void *Reserved;
    } 	FABRIC_CONTAINER_EVENT_DESCRIPTION;

typedef struct FABRIC_CONTAINER_EVENT_DESCRIPTION_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_CONTAINER_EVENT_DESCRIPTION *Items;
    } 	FABRIC_CONTAINER_EVENT_DESCRIPTION_LIST;

typedef struct FABRIC_CONTAINER_EVENT_NOTIFICATION
    {
    ULONGLONG SinceTime;
    ULONGLONG UntilTime;
    FABRIC_CONTAINER_EVENT_DESCRIPTION_LIST *EventList;
    void *Reserved;
    } 	FABRIC_CONTAINER_EVENT_NOTIFICATION;

typedef struct FABRIC_CONTAINER_API_EXECUTION_ARGS
    {
    LPCWSTR ContainerName;
    LPCWSTR HttpVerb;
    LPCWSTR UriPath;
    LPCWSTR ContentType;
    LPCWSTR RequestBody;
    void *Reserved;
    } 	FABRIC_CONTAINER_API_EXECUTION_ARGS;

typedef struct FABRIC_CONTAINER_API_EXECUTION_RESPONSE
    {
    USHORT StatusCode;
    LPCWSTR ContentType;
    LPCWSTR ContentEncoding;
    ULONG ResponseBodyBufferSize;
    /* [size_is] */ BYTE *ResponseBodyBuffer;
    void *Reserved;
    } 	FABRIC_CONTAINER_API_EXECUTION_RESPONSE;


#pragma pack(pop)

EXTERN_C const IID LIBID_FabricType_Lib;
#endif /* __FabricType_Lib_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


